define(function (){
　return commonObj = {
		rNum : 18,
		pers : ['n1','n2','n3','n4','n5','n6'],
		selBzData : [],  //班种人员数据
		xzgzNum : 0,
		GZers : [],			 //规则候选人员
		shiftWorkers:['l1','l2','l3','l4','l5','l6','l7','l8','l9','l10'],
	//常班人员设置模板
		cbryszTPL: function (name) {
				return '<div class="cbrysz_fl cbrysz_box_fl"><div class="f-l">\
				 <div class="btn-group">\
					<button type="button" class="btn btn-default icon bzDEL_btn">\
					<i class="glyphicon glyphicon-remove"></i>\
					</button>\
					<button type="button" class="btn btn-default bz_name">'+name+'</button>\
					</div>\
					</div>\
					<div class="f-l p-l-15">\
					<div class="btn-group">\
					<button type="button" class="btn btn-default">护理人员</button>\
					<button type="button" class="btn-default btn_r select_nurser"><span class="caret"></span></button>\
					<ul class="dropdown-menu select_nurser_ui">\
					</ul>\
					</div>\
					</div>\
					<span class="sel_hlry_cbrysz_box selhlry"></span>\
					</div>'
		},

		//常班人员内容设置模板
		cbryszNRTPL: function (name) {
			return '<div class="cbrysz_fl">'
         +'<div class="f-l p-r-15">'        
           +'<div class="btn-group">'              
             +'<button type="button" class="btn btn-default">'+name+'</button>'          
           +'</div>'          
         +'</div>'          
       +'<div class="f-l p-r-15 nurserNRBox">'             
       +'</div>'          
       +'<span class="sel_hlry_cbrysz_box selhlry"></span>'         
       +'</div>'
		},

		//常班人员内容设置新增人员模板
		cbryszNRTPLRY: function(name) {
			return '<div class="btn-group btn-ry-group p-r-15">'         
         +'<button type="button" class="btn btn-default">'+name+'</button>'         
         +'<button type="button" class="btn-default btn_r select_nurser">'
           +'<span class="caret"></span>'
         +'</button>'          
       +'<ul class="dropdown-menu select_nurser_ui" style="display: none;">'            
         +'<li><label class="checkbox-inline i-checks hs-box">'
	          +'<input type="radio" name="a" value="option1" class="hlry-radio">早班'
	        	+'</label>'
				 +'</li>' 
				 +'<li><label class="checkbox-inline i-checks hs-box">'
	          +'<input type="radio" name="a" value="option1" class="hlry-radio">中班'
	        	+'</label>'
				 +'</li>' 
				 +'<li><label class="checkbox-inline i-checks hs-box">'
	          +'<input type="radio" name="a" value="option1" class="hlry-radio">晚班'
	        	+'</label>'
				 +'</li>' 
				 +'<li><label class="checkbox-inline i-checks hs-box">'
	          +'<input type="radio" name="a" value="option1" class="hlry-radio">夜班'
	        	+'</label>'
				 +'</li>'           
       +'</ul>'         
       +'</div>'
		},

		xzgzTPL:function (i,name) {
				return '<div class="col-sm-12 workCycle_box cbrysz_fl">'
					+'<div class="btn-group xzgz-group">'
					+'<button type="button" class="btn btn-default icon xzgzDEL_btn">'
					+'<i class="glyphicon glyphicon-remove"></i>'
					+'</button>'
					+'<button type="button" class="btn btn-default bz_name">'+name+i+'</button>'
					+'</div>'
        	+'<span class="f_l">做：</span>'    
        	+'<span class="f_l workCycle_inp">'
  					+'<input type="num" class="form-control">'
  				+'</span>'  
  				+'<span class="f_l">休：</span>'   
        	+'<span class="f_l workCycle_inp">'
  					+'<input type="num" class="form-control">'
  				+'</span>'  
  				+'<div class="nurse_btn dropdown">'
            +'<button type="button" class="btn btn-default btn_l" tabindex="-1">护理人员</button>'
            +'<button type="button" class="btn btn-default btn_r select_nurser" dropdown-toggle="" aria-haspopup="true" aria-expanded="true"><span class="caret"></span></button>'
            +'<ul class="dropdown-menu select_nurser_ui xzgz_dropdown">'
            +'</ul>'
          +'</div>' 
        +'<span class="sel_hlry_xzgz_box selhlry"></span>'     
        +'<div class="c-b h-cb"></div>'           
        +'</div>'
    },

    bzryTPL:function (m,className) {
    	return '<div class="btn-group p-r-15">'
    			+'<button type="button" class="btn btn-default icon '+className+'">'
					+'<i class="glyphicon glyphicon-remove"></i>'
					+'</button>'
					+'<button type="button" class="btn btn-default cbry-btn">'+m+'</button>'
					+'</div>'
  	},

    ryxlSelect: function(n){
    	return '<li><label class="checkbox-inline i-checks hs-box">'
	          +'<input type="checkbox" value="option1" class="hlry-checkbox">'+n
	        	+'</label>'
						+'</li>'
    },

		//新增班种
		addClass:function () {
			//点击新增班种弹窗新增按钮新增html片段
			$('#addClass_Btn').click(function () {
				$('#cbrysz_box').html('');
				$('#cbryset_box').html('');
				$('#addClass_name').find('input').each(function(){
					// console.log($(this).parent().text());
					if($(this).is(':checked')){
						var className = $(this).parent().text();
						var bzObj = {};
						bzObj.name = className;
						bzObj.ry = [];
						commonObj.selBzData.push(bzObj);
						$('#cbrysz_box').append(commonObj.cbryszTPL(className));
						$('#cbryset_box').append(commonObj.cbryszNRTPL(className));
					}
				})
				$('#addClass_name').find('input').prop({checked:false});
				
			});

			//删除班种
			$('#cbrysz_box').on("click",".bzDEL_btn", function(){
				
				var sc_cbrysz_box_num = $(this).parents('.cbrysz_box_fl').index();
				if('.cbrysz_fl:'+$('#xzgz_box').find('.cbrysz_fl').length==0){
					//删除行
					$('#cbryset_box').find('.cbrysz_fl').eq(sc_cbrysz_box_num).remove();
					$(this).parents('.cbrysz_fl').remove();
					//插入班种里commonObj.pers的人员
					
					$.each(commonObj.selBzData[sc_cbrysz_box_num].ry,function(i,n){
						if(jQuery.inArray(n,commonObj.pers)<0){
							commonObj.pers.push(n);
						}
					});
					//删除commonObj.selBzData的班种数据
					commonObj.selBzData.splice(sc_cbrysz_box_num,1)
					
				}else{
					alert('请先删除新增规则，才能删除班种')
				};
			});

			//删除班种分配的人员
			$('#cbrysz_box').on("click",".bzryDEL_btn", function(){
				var _node = $(this).parent();
				var bzryDEL_name = $(this).next().text();
				var _index = $(this).parents('.cbrysz_box_fl').index();
				commonObj.pers.push(bzryDEL_name);
				//删除GZers新增规则分配人员里的数据
				commonObj.GZers.splice($.inArray(bzryDEL_name,commonObj.GZers),1);
				//删除selBzData里的数据
				commonObj.selBzData[_index].ry.splice($.inArray(bzryDEL_name,commonObj.selBzData[_index].ry),1); 
				commonObj.renderCBRY(_index);
				//删除dom
				_node.remove();
			});

			//新增规则
			$('#xzgzBtn').click(function(){
				commonObj.xzgzNum++
				$('#xzgz_box').append(commonObj.xzgzTPL(commonObj.xzgzNum,'规则'));
			});

			//
			commonObj.selectNurser();
			commonObj.selectGZer();

		  //分配护理人员的角色
		  $('#cbryset_box').on("click",".select_nurser",function(e){
		  	$('.select_nurser_ui').hide();
		  	$(this).next().css({'display':'block'});
		  	e.stopPropagation();
		  });

		  $('#cbryset_box').on("click",".select_nurser_ui",function(e){	
		  	$(this).find('.hlry-radio').change(function(){
		  		$(this).parents('.btn-group').find('.btn_js').remove();
		  		var btn_js = $(this).parent().text();
		  		var this_btn = $(this).parents('.btn-group').find('.select_nurser');
		  		this_btn.before('<button type="button" class="btn btn-default btn_l btn_js">'+btn_js+'</button>');
		  	});
		  	e.stopPropagation();
		  });	
	  },

	  //选择新增规则人员
	  selectGZer: function(){		//校验，如果数组不为空就不能提交
  		var selGZers = [];		//新增规则中选择人员的数据
  		var kg = true;
	  	$('#xzgz_box').on("click",".select_nurser",function(e){	  		
	  		var _this = $(this);
	  		$('#xzgz_box').find('.select_nurser_ui').css({'display':'none'});	  		
		  		$(this).next().find('li').remove();
		  		if(kg){
			  		$.each(commonObj.selBzData,function(i,n){
			  			// $.merge( commonObj.GZers, n.ry );
			  			$.each(n.ry,function(j,m){
			  				
			  				if($.inArray(m, commonObj.GZers)<0){
			  					commonObj.GZers.push(m);
			  				}
			  			})
			  		})
		  		} 	

		  		if(commonObj.GZers.length == 0){
		  			alert('暂无人员可选择');
		  		}else{
		  			$(this).next().css({'display':'block'});
			  		
			  		//渲染下拉列表
			  		$.each(commonObj.GZers,function(i,n){
			  			
			  			$('#xzgz_box').find('.select_nurser_ui').append(commonObj.ryxlSelect(n))
			  		})
		  		};
		  		
				
	  		e.stopPropagation();
	  	})

	  	//勾选
	  	$('#xzgz_box').on("click", ".xzgz_dropdown", function(e){
	  		e.stopPropagation();
	  		var this_checks = $(this).find('input');
	  		this_checks.each(function(i,n){
	  			if($(this).is(':checked')){
	  				var xzgzName = $(this).parent().text();
	  				
	  				if($.inArray(xzgzName, selGZers)<0){	
	  				  selGZers.push(xzgzName);	
	  				  commonObj.GZers.splice($.inArray(xzgzName,commonObj.GZers),1); 	
	  				  		
	  				  kg = false;
	  				  // 渲染新增规则人员按钮
		  				$(this).parents('.cbrysz_fl').find('.sel_hlry_xzgz_box').append(commonObj.bzryTPL(xzgzName,'xzgzryDEL_btn'));
	  				}
	  			}
	  		})
	  	})

	  	//删除新增规则人员按钮
	  	$('#xzgz_box').on('click','.xzgzryDEL_btn',function(){
	  		var xzgzName = $(this).next().text();
	  		commonObj.GZers.push(xzgzName); 
	  		//删除新增规则中选择人员的数据
	  		selGZers.splice($.inArray(xzgzName,selGZers),1); 
	  		// commonObj.GZers.splice($.inArray(xzgzName,commonObj.GZers),1); 
	  		$(this).parent().remove();

	  	})

	  	//删除新增规则
	  	$('#xzgz_box').on('click','.xzgzDEL_btn',function(){
	  		var thisFL_node = $(this).parents('.cbrysz_fl');
	  		var this_index = thisFL_node.index();
	  		var xzgzryDEL_btn_node = thisFL_node.find('.xzgzryDEL_btn');
	  		xzgzryDEL_btn_node.each(function(){
	  			commonObj.GZers.push($(this).next().text());
	  			//删除新增规则中选择人员的数据
		  		selGZers.splice($.inArray($(this).next().text(),selGZers),1); 
	  		})
	  		thisFL_node.remove();
	  	})


	  },

	  //选择护理人员
	  selectNurser: function(){
	  	var selNum = -1;
	  	
	  	$('#cbrysz_box').on("click",".select_nurser",function(e){
		  	//渲染下拉选择框
		  	$('#cbrysz_box').find('.select_nurser_ui').find('li').remove();
		  	
		  	

		  	//刷新pers
		  	$.each(commonObj.pers,function(p_i,p_n){
		  		$.each(commonObj.hlry_arr,function(p_j,p_m){
		  			
		  			if(p_m == p_n){
		  				commonObj.pers.splice($.inArray(p_n,commonObj.pers),1); 
		  			}
		  		})  
		  	}) 


		  	$.each(commonObj.pers,function(i,n){
		  		$('#cbrysz_box').find('.select_nurser_ui').append(commonObj.ryxlSelect(n))
		  	})  	
	  		$('.select_nurser_ui').hide();
	  		$(this).next().css({'display':'block'});
	  		
	  		if($(this).parents('.cbrysz_box_fl').parent().attr('id') == 'cbrysz_box'){
	  			selNum = $(this).parents('.cbrysz_box_fl').index();
	  		}else{
	  			selNum = -1
	  		}
	  		e.stopPropagation();
	  		
	  		//
	  	})

	  	//常班人员设置中选择护理人员选择	  	
	  	$('#cbrysz_box').on("click",".select_nurser_ui",function(e){		
	  		var hlry_checkboxs = $(this).find('.hlry-checkbox');
	  		var bz_name = $(this).parents('.cbrysz_box_fl').find('.bz_name').text();
	  		var ryTXT_node = $(this).parents('.cbrysz_fl').find('.sel_hlry_cbrysz_box');
	  		ryTXT_node.children().remove();
	  		
	  		hlry_checkboxs.each(function(){
	  			if($(this).is(':checked')){
	  				var checkbox_name = $(this).parent().text();
	  				
	  					var bzry_name = $(this).parent().text();
	  					$.each(commonObj.selBzData,function(i,n){
	  						if(n.name == bz_name){
	  							var _bzry = n.ry;
	  							if($.inArray(checkbox_name, _bzry)<0){	  								
		  							_bzry.push(bzry_name);

		  							// commonObj.hlry_arr.push(bzry_name);
		  							commonObj.pers.splice($.inArray(bzry_name,commonObj.pers),1); 
	  							}
	  						}
								
	  					})
	  				
	  				
	  			}
	  		})

	  		// 渲染班种人员按钮
	  		$.each(commonObj.selBzData,function(i,n){
	  			if(n.name == bz_name){
	  				var _bzry = n.ry;
	  				$.each(_bzry,function(j,m){
	  						ryTXT_node.append(commonObj.bzryTPL(m,'bzryDEL_btn'))
	  				})
	  			}
	  		});



	  		

	  		if(selNum > -1){
	  			commonObj.renderCBRY(selNum);
	  		}
	  		
	  		console.log('.sel_hlry_cbrysz_box');
	  		e.stopPropagation();
	  	})
	  },

	  //渲染新增人员按钮
	  renderCBRY: function(ind){
	  	//先清空按钮
			$('#cbryset_box').find('.nurserNRBox').eq(ind).children().remove();
	  	$.each(commonObj.selBzData[ind].ry, function(i,n){
	  	  $('#cbryset_box').find('.nurserNRBox').eq(ind).append(commonObj.cbryszNRTPLRY(n));
	  	});
	  },

	  shiftTPL: function(n){
	  	return '<div class="shiftSet_box workCycle_box">'
        +'<span class="f_l">'+n+'：</span>'     
        +'<span class="f_l workCycle_inp">'
          +'<input type="num" class="form-control">'
        +'</span>'             
        +'</div>';
	  },

	  shiftTPLA: function(n) {
	  	return '<div class="col-sm-10 shiftSetRbox">'        
        +'<div class="shiftSet_box workCycle_box rest_box_b">'
        +'<span class="f_l">'+n+'：</span>'     
        +'<span class="f_l workCycle_inp">'
          +'<input type="num" class="form-control">'
        +'</span>'              
        +'</div>'
      +'</div>'
	  },

	  shiftTPLB: function(n) {
	  	return '<div class="shiftSet_box workCycle_box rest_box_b">'
        +'<span class="f_l">'+n+'：</span>'     
        +'<span class="f_l workCycle_inp">'
          +'<input type="num" class="form-control">'
        +'</span>'              
        +'</div>';
	  },

	  shiftSet: function(){
	  	$('#shiftSet_btn').click(function(){
	  		$('#shiftSetGDJR').parent().find('.shiftSetRbox').remove();
	  		$('#shiftSetGZR').parent().find('.shiftSetRbox').remove();
	  		$('.rest_box').siblings().remove();
				var shiftTPLA_arr = ['岗位','岗位2','岗位3'];		//岗位数组
				var radiocCheckedNum = 0;
				$('#shiftSet_name').find('input').each(function(){
					// console.log($(this).parent().text());
					if($(this).is(':checked')){
						var className = $(this).parent().text();
						$('.rest_box').before(commonObj.shiftTPL(className));
						$('#shiftSetGZR').before(commonObj.shiftTPLA(className));				
						$('#shiftSetGDJR').before(commonObj.shiftTPLA(className));
						radiocCheckedNum++;
					}
				})
				$.each(shiftTPLA_arr, function(i,n){					
					$('.shiftSetRbox').append(commonObj.shiftTPLB(n));
				});

				var jc_num = Math.floor(commonObj.rNum/(radiocCheckedNum+1));//轮班设置的基础数
				var m_num = commonObj.rNum%(radiocCheckedNum+1);
				var arrs = shiftTPLA_arr.length;		//岗位个数
				var shiftSetGZR_node = $('#shiftSetGZR').parent().find('.shiftSetRbox');
				var shiftSetGDJR_node = $('#shiftSetGDJR').parent().find('.shiftSetRbox');
				

				//无模的情况
				//写入工作轮班设置中工作日班种人员个数
				$('.gzr_box').find('input').val(jc_num);
				//写入工作轮班设置中国定假日班种人员个数
				$('.sxr_box').find('input').val(jc_num);
				//写入工作岗位设置中工作日班种人员个数
				shiftSetGZR_node.each(function(n){
					$(this).find('.rest_box_b').eq(0).find('input').val(jc_num);			
				})
				//写入工作岗位设置中国定假日班种人员个数
				shiftSetGDJR_node.each(function(n){
					$(this).find('.rest_box_b').eq(0).find('input').val(jc_num);			
				})



				// $('#shiftSetGDJR').parent().find('.shiftSetRbox').find('.rest_box_b').eq(0).find('input').val(jc_num)
				//有模的情况
				if(m_num != 0){
					for(var i=0; i<m_num; i++){			
							//写入工作轮班设置中工作日班种人员个数				
							$('.gzr_box').find('input').eq(i).val(jc_num+1);
							//写入工作轮班设置中国定假日班种人员个数
							$('.sxr_box').find('input').eq(i).val(jc_num+1);
							//写入工作岗位设置中工作日班种人员个数
							$('#shiftSetGZR').parent().find('.shiftSetRbox').eq(i).find('.rest_box_b').eq(0).find('input').val(jc_num+1);
							//写入工作岗位设置中国定假日班种人员个数
							$('#shiftSetGDJR').parent().find('.shiftSetRbox').eq(i).find('.rest_box_b').eq(0).find('input').val(jc_num+1);
						
					}
				}

				// 工作岗位设置中国定假日计算
				$('#shiftSetGDJR').parent().find('.shiftSetRbox').each(function(n){					
					var zs = $(this).find('.rest_box_b').eq(0).find('input').val();
					commonObj.shiftSetJS(zs,$(this),arrs);
				})
				// 工作岗位设置中工作日计算
				$('#shiftSetGZR').parent().find('.shiftSetRbox').each(function(){
					var zs = $(this).find('.rest_box_b').eq(0).find('input').val();
					console.log('#shiftSetGZR_zs:'+zs);
					commonObj.shiftSetJS(zs,$(this),arrs);
				})




	  	});

	  	//轮班设置中新增班种	  	
	  	var xzbz_num = 1;
	  	var xzbz_nurser = [];
			$('#lbxzbz_btnID').click(function(){		
				//渲染班种dom
				$('#lbxzbz_box').append(commonObj.xzgzTPL(xzbz_num,'班种'));
				xzbz_num++;
			});	

			$('#lbxzbz_box').on("click",".select_nurser",function(e){	
				e.stopPropagation();
				var _this = $(this);
				var _fl = $(this).parents('.cbrysz_fl');
				//渲染下拉菜单
				_fl.siblings().find('.select_nurser_ui').css({'display':'none'});
				$(this).next().css({'display':'block'});
				commonObj.renderDropdownMenu(commonObj.shiftWorkers,'lbxzbz_box',_fl);				
			})

			//轮班资源中新增班种选择人员
			$('#lbxzbz_box').on("click",".select_nurser_ui",function(e){	
				e.stopPropagation();
				var this_checks = $(this).find('input');
				this_checks.each(function(i,n){
	  			if($(this).is(':checked')){
	  				var _thisName = $(this).parent().text();
	  				if($.inArray(_thisName, xzbz_nurser)<0){	
	  				  xzbz_nurser.push(_thisName);	
	  				  commonObj.shiftWorkers.splice($.inArray(_thisName,commonObj.shiftWorkers),1); 	
	  				  // 渲染新增规则人员按钮
		  				$(this).parents('.cbrysz_fl').find('.selhlry').append(commonObj.bzryTPL(_thisName,'lbzyryDEL_btn'));
	  				}
	  			}
	  		})
			})

			//删除资源中新增班种的人员
			$('#lbxzbz_box').on('click','.lbzyryDEL_btn',function(e){
				var _thisName = $(this).next().text();
				xzbz_nurser.splice($.inArray(_thisName,xzbz_nurser),1);
				commonObj.shiftWorkers.push(_thisName);
				$(this).parent().remove();
			})

			//删除资源中新增的班种
			$('#lbxzbz_box').on('click','.xzgzDEL_btn',function(){
				var _thisFl = $(this).parents('.cbrysz_fl');
				var rys = _thisFl.find('.cbry-btn');
				rys.each(function(i,n){
					console.log(n);
					_mName = $(n).text(); // 这行中每个人员名字
					commonObj.shiftWorkers.push(_mName);
					xzbz_nurser.splice($.inArray(_mName,xzbz_nurser),1);
				})
				_thisFl.remove();
			})


	  },
	  renderDropdownMenu: function(obj,selectID,thisFlnode){	  
	  	thisFlnode.find('.select_nurser_ui > li').remove();
	  	$.each(obj,function(i,n){
	  		thisFlnode.find('.select_nurser_ui').append(commonObj.ryxlSelect(n))
	  	})
	  },


	  //工作岗位设置中岗位人员设置
	  shiftSetJS: function(zs,obj,arrs_len){
	  	var this_rest_box_b = obj.find('.rest_box_b');
	  	var arrs = arrs_len;
	  	
	  	//l
	  	obj.find('.rest_box_b').each(function(i){
	  		// console.log('l:'+i);

	  		if(i>=1){
	  			// $(this).find('input').val('kv');
	  			var jcs2_num = Math.floor(zs/arrs);
	  			var m2_num = zs%arrs;
	  			$(this).find('input').val(jcs2_num);
	  			if(m2_num != 0){
	  				for (var j=0; j<m2_num; j++) {
	  					this_rest_box_b.eq(j+1).find('input').val(jcs2_num+1)
	  				}
	  				
	  			}
	  		}
	  	})
	  }






	  
	}
});